ruby设计模式之观察者模式1 |
您所在的位置:网站首页 › ruby 设计模式 › ruby设计模式之观察者模式1 |
观察者模式应该是最容易理解的设计模式了。 考虑这个例子。作为雇员的你当工资发生改变的时候你会想到什么? 请朋友吃饭?给女朋友买衣服?给自己买台Iphone4? 很可惜,你所增加的那点可怜的工资恐怕难以支持你做以上这些事情吧。 当你工资增加之后,你的个人所得税理所当然的增加了;你的住房公积金提高了;你的社保不出意外也要多交了。剩下来的那点应该也不够塞牙了。 这个理应是喜剧的杯具中实际上包含了观察者模式的基本概念。在这个例子中,社保局、税务局实际上是你的观察者。当你的工资发生变化时,你(一般来说是你的雇主)会通知有关部门,以便有关部门能够根据你的收入调整税收或社保政策。 下面的代码(使用ruby1.9实现,1.8y应该有问题)比较简单的实现了上面这个杯具: #encoding: utf-8 class Tester attr_reader :name, :title, :salary def initialize name, title, salary @name = name @title = title @salary = salary @observers = [] end def salary=new_salary @salary = new_salary notify_observers end def notify_observers @observers.each do |ob| ob.update self end end def add_observer ob @observers |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |